home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 06 - 1990 / 06.03 Mar 90 / Mouse Source / TrackActivate.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-07-22  |  1.4 KB  |  63 lines  |  [TEXT/KAHL]

  1. /*                                            TrackActivate.c                                    */
  2. /*
  3.  * Copyright © 1989 Martin Minow. All rights reserved.
  4.  *
  5.  * void
  6.  * TrackActivate(track_handle)
  7.  * TrackHandle    track_handle;
  8.  *
  9.  * void
  10.  * TrackDeactivate(track_handle)
  11.  * TrackHandle    track_handle;
  12.  *
  13.  * These routines are called when the application program
  14.  * receives an activate or deactivate event.  They may
  15.  * also be called temporarily to erase any current
  16.  * selection if, for example, the application program
  17.  * needs to change the hiliting characteristics.
  18.  */  
  19. #include "TrackEdit.h"
  20. #define TR    (*tr)
  21.  
  22. void
  23. TrackActivate(track_handle)
  24. TrackHandle    track_handle;
  25. {
  26.         register TrackPtr    tr;
  27.         _Track_state            state;
  28.         
  29.         tr = _Track_lock(track_handle, &state);
  30.         SetPort(TR.inPort);
  31.         if (!_Track_is_set(tr, _Track_is_active)) {
  32.             /*
  33.              * Activating: call the hiliters to invert any
  34.              * selection.
  35.              */
  36.             _Track_set(tr, _Track_is_active);
  37.             _Track_hilite(tr, TR.selStart, TR.selEnd);
  38.             _Track_caret(tr, _Track_caret_on);
  39.         }
  40.         _Track_unlock(&state);
  41. }
  42.  
  43. void
  44. TrackDeactivate(track_handle)
  45. TrackHandle    track_handle;
  46. {
  47.         register TrackPtr    tr;
  48.         _Track_state            state;
  49.  
  50.         tr = _Track_lock(track_handle, &state);
  51.         if (_Track_is_set(tr, _Track_is_active)) {
  52.             /*
  53.              * Deactivating: invert any selection to
  54.              * erase it from the window.
  55.              */
  56.             _Track_hilite(tr, TR.selStart, TR.selEnd);
  57.             _Track_caret(tr, _Track_caret_off);
  58.             _Track_clear(tr, _Track_is_active);
  59.         }
  60.         _Track_unlock(&state);
  61. }
  62.  
  63.